A cognitive study of learning to program in introductory programming courses
نویسنده
چکیده
Programming is notoriously hard for novices to learn and a substantial number of learners fail in introduction to programming courses. It is not just a UK problem: a number of multi-institutional and multi-national studies reveal that the problem is well-known and is widespread. There is no general agreement about the causes or the remedies. The major factors which can be hypothesised as a cause of this phenomenon are: learners’ psychology; teaching methods; complexity of programming. In this study, learners’ common mistakes, bugs, misconceptions, frequencies and type of errors (syntactic and semantic) in the early stages of learning programming were studied. Noticing the patterns of rationales behind novices’ mistakes swayed the study toward investigating novices’ mental ability which was found to have a great effect on their learning performance. It was observed that novices reported a recognisable set of models of program execution each of which was logically acceptable as a possible answer and it appeared that some students even used these models systematically. It was suspected that the intellectual strategies behind their reasoning could have been built up from their programming background knowledge and it was surprising when it was found that some of those novices had not even seen a program before. A diagnostic questionnaire was designed that apparently examined a student’s understanding of assignments and sequence but in fact was capturing the reasoning strategy behind their interpretation of each question, regardless of a correct or wrong answer. The questionnaire was administered in the first week of an introductory programming course, without giving any explanation of what the questions were about. A full response from most participants was received, despite the fact that the questions were unexplained. Confronted with a simple program, about half of novices seem to spontaneously invent and consistently apply a mental model of program execution. They
منابع مشابه
Python and Roles of Variables in Introductory Programming: Experiences from Three Educational Institutions
Students often find that learning to program is hard. Introductory programming courses have high drop-out rates and students do not learn to program well. This paper presents experiences from three educational institutions where introductory programming courses were improved by adopting Python as the first programming language and roles of variables as an aid in understanding program behavior. ...
متن کاملArtificial Intelligence for Non-Majors at Multiple Levels
Over the past several years, many computer science departments have seen a decline in enrollments. This paper describes two courses – at the introductory and advanced levels – that hope to attract students to computer science through topics in Artificial Intelligence. Over the past several years, many computer science departments have seen a decline in enrollments. As the program committee for ...
متن کاملExploring Language Learners’ Cognitive Processes in On-line ESP Courses via Think-aloud Protocol Analysis
The present study aims to investigate language learners’ cognitive processes in on-line ESP courses. Three modes of inquiry are used: think-aloud protocol analysis, screen capture analysis, and correlation analysis. The theoretical foundations for the evaluation of the cognitive aspect of Ferdowsi Univeristy of Mashhad E-learning System are drawn from cognitive load theory, cognitive apprentice...
متن کاملDeveloping Countries: a Nigerian Perspective
Universities of developing countries are faced with increased dropout rate from computing degrees due to the high failure rate of introductory programing courses. In this paper, we apply a grounded theory approach to investigate why student’s fail introductory programming courses in a Nigeria University. A qualitative method of data collection was adopted to examine the students’ views about th...
متن کاملTeaching Introductory Programming to IS Students: The Impact of Teaching Approaches on Learning Performance
Introductory programming courses are typically required for undergraduate students majoring in Information Systems. Instructors use different approaches to teaching this course: some lecturing and assigning programming exercises, others only assigning programming exercises without lectures. This research compares the effects of these two teaching approaches on learning performance by collecting...
متن کامل